Hike News
Hike News

Sqlite常用语句

Creat Table

CREATE TABLE 语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型

 CREATE TABLE database_name.table_name(
column1 datatype  PRIMARY KEY(one or more columns),
.....
columnN datatype,);

Delete table

DROP TABLE 语句用来删除表定义及其所有相关数据、索引、触发器、约束和该表的权限规范。一但一个表使用此命令被删除,表中所有信息也将永远丢失。

DROP TABLE database_name.table_name;

Insert

INSERT INTO 语句用于向数据库的某个表中添加新的数据行。
INSERT INTO 语句有两种基本语法,如下所示:

  1. INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN); column1为列名
  2. INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

SELCT

SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。
使用方法:

1  SELECT column1, column2, columnN FROM table_name;
2 SELECT * FROM table_name;

SQLite 算术运算符

假设变量 a=10,变量 b=20,则:
| 运算符 | 描述 | 实例 |
| :—— | :—— | :—— |
|+ |加法 - 把运算符两边的值相加 | a + b 将得到 30|
|- |减法 - 左操作数减去右操作数 | a - b 将得到 -10|
| |乘法 - 把运算符两边的值相乘 | a b 将得到 200|
|/| 除法 - 左操作数除以右操作数 | b / a 将得到 2|
|%| 取模 - 左操作数除以右操作数后得到的余数| b % a will give 0|

SQLite 表达式

SELECT column1, column2, columnN FROM table_name WHERE [CONTION | EXPRESSION];

WHERE

WHERE 子句用于指定从一个表或多个表中获取数据的条件。如果满足给定的条件,即为真(true)时,则从表中返回特定的值。您可以使用WHERE子句来过滤记录,只获取需要的记录。WHERE子句不仅可用在SELECT语句中,它也可用在 UPDATE、DELETE 语句中

SELECT column1, column2, columnN 
FROM table_name 
WHERE [condition]

AND/OR

AND 和 OR 运算符用于编译多个条件来缩小在 SQLite 语句中所选的数据。

  • AND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。使用 AND 运算符时,只有当所有条件都为真(true)时,整个条件为真(true)。例如,只有当 condition1 和 condition2 都为真(true)时,[condition1] AND [condition2] 为真(true)
  • OR 运算符也用于结合一个 SQL 语句的 WHERE 子句中的多个条件。使用 OR 运算符时,只要当条件中任何一个为真(true)时,整 个条件为真(true)。例如,只要当 condition1 或 condition2 有一个为真(true)时,[condition1] OR [condition2] 为真(true)。

Update

UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。
带有 WHERE 子句的 UPDATE 查询的基本语法如下:

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

Delete

DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查询来删除选定行,否则所有的记录都会被删除。下面的语句table所有记录都会被删除。

DELETE FROM table_name

带有 WHERE 子句的 DELETE 查询的基本语法如下:

DELETE FROM table_name
WHERE [condition];

可以使用 AND 或 OR 运算符来结合 N 个数量的条件。

Like

LIKE 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1。这里有两个通配符与 LIKE 运算符一起使用:

  • 百分号 (%)
  • 下划线 (
    百分号(%)代表零个、一个或多个数字或字符。下划线(
    )代表一个单一的数字或字符。这些符号可以被组合使用。

    SELECT FROM table_name
    WHERE column LIKE ‘XXXX%’

    or

    SELECT FROM table_name
    WHERE column LIKE ‘%XXXX%’

    or

    SELECT FROM tablename
    WHERE column LIKE ‘XXXX

    or

    SELECT FROM table_name
    WHERE column LIKE ‘_XXXX’

    or

    SELECT FROM table_name
    WHERE column LIKE ‘XXXX

例如:
|语句| 描述|
| :——| :——|
|WHERE SALARY LIKE ‘200%’| 查找以 200 开头的任意值|
|WHERE SALARY LIKE ‘%200%’| 查找任意位置包含 200 的任意值|
|WHERE SALARY LIKE ‘00%’| 查找第二位和第三位为 00 的任意值|
|WHERE SALARY LIKE ‘2
%_%’| 查找以 2 开头,且长度至少为 3 个字符的任意值|
|WHERE SALARY LIKE ‘%2’| 查找以 2 结尾的任意值|
|WHERE SALARY LIKE ‘_2%3’| 查找第二位为 2,且以 3 结尾的任意值|
|WHERE SALARY LIKE ‘2___3’| 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值|

Glob

GLOB 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,GLOB 运算符将返回真(true),也就是 1。与 LIKE 运算符不同的是,GLOB 是大小写敏感的,对于下面的通配符,它遵循 UNIX 的语法。

  • 星号 (*)
  • 问号 (?)

星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用。

  • 和 ? 的基本语法如下:

    SELECT FROM table_name
    WHERE column GLOB ‘XXXX*’

    or

    SELECT FROM table_name
    WHERE column GLOB ‘XXXX

    or

    SELECT FROM table_name
    WHERE column GLOB ‘XXXX?’

    or

    SELECT FROM table_name
    WHERE column GLOB ‘?XXXX’

    or

    SELECT FROM table_name
    WHERE column GLOB ‘?XXXX?’

    or

    SELECT FROM table_name
    WHERE column GLOB ‘????’

您可以使用 AND 或 OR 运算符来结合 N 个数量的条件。在这里,XXXX 可以是任何数字或字符串值。
实例。
下面一些实例演示了 带有 ‘‘ 和 ‘?’ 运算符的 GLOB 子句不同的地方:
|语句| 描述|
| :——| :——|
|WHERE SALARY GLOB ‘200
‘| 查找以 200 开头的任意值|
|WHERE SALARY GLOB ‘200‘| 查找任意位置包含 200 的任意值|
|WHERE SALARY GLOB ‘?00‘| 查找第二位和第三位为 00 的任意值|
|WHERE SALARY GLOB ‘2??’| 查找以 2 开头,且长度至少为 3 个字符的任意值|
|WHERE SALARY GLOB ‘
2’| 查找以 2 结尾的任意值|
|WHERE SALARY GLOB ‘?2*3’| 查找第二位为 2,且以 3 结尾的任意值|
|WHERE SALARY GLOB ‘2???3’| 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值|

LIMIT

LIMIT 子句用于限制由 SELECT 语句返回的数据数量

ELECT column1, column2, columnN 
FROM table_name
LIMIT [no of rows]

ORDER BY

ORDER BY子句是用来基于一个或多个列按升序或降序顺序排列数据.

SELECT column-list 
FROM table_name 
[WHERE condition] 
[ORDER BY column1, column2, .. columnN] [ASC | DESC];

GROUP BY

GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组。
在 SELECT 语句中,GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前。

SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN

HAVING

HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。
WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。
下面是 HAVING 子句在 SELECT 查询中的位置:

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

在一个查询中,HAVING 子句必须放在 GROUP BY 子句之后,必须放在 ORDER BY 子句之前。下面是包含 HAVING 子句的 SELECT 语句的语法:

SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2